home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Scene 96
/
Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso
/
misc
/
utilz
/
mmcmps12
/
mmcmp.doc
< prev
next >
Wrap
Text File
|
1996-02-20
|
16KB
|
359 lines
MUSIC MODULE COMPRESSOR
version 1.20
User's Manual
Table of contents:
1. Introduction
2. Information on MMCMP:
2.1. Requirements
2.2. Files in this packages
2.3. Features of this version
3. Usage:
3.1. Compressing modules
3.2. Uncompressing modules
3.3. Using MMTSR <-- read this!!!
3.4. Technical Stuff about MMTSR
4. Some legal stuff...
5. Closing words
6. Contacting the author
<See MMUPDATE.DOC fow latest implementations!>
1. Introduction
As music modules are constantly growing larger and larger, it becomes
interesting to compress those modules to save space on disk.
However, files compressed using "standard" compression utility may be
played by only a few players and can't usually be loaded into a
conventionnal tracker for editing and composing. But now, MMCMP
offer you the possibility to do so.
MMCMP is a conventionnal compression utility that will compress music
modules, giving approximatively the same ratio you could expect with
any popular compression utility. It is not some kind of special sound
compression like MPEG2, for example, which may give a very gound
compression ratio, but modifies the data and tends to lower sound
quality. MMCMP does not modify the original sound data, and
decompressing a compressed module (using MMUNCMP) gives back the
original module.
What's special with MMCMP is the small TSR (Terminate and Stay
Resident) utility (MMTSR.EXE) which, once loaded, decompresses in
"background" compressed modules when they are loaded by "ANY" player
or tracker. So you DON'T NEED TO DECOMPRESS MODULES TO PLAY THEM BACK!
However, due to technical reasons, MMTSR can't compress module when,
within a tracker, you save them back on your disk. You'll have to do
this "manually" with MMCMP.
Fortunately, this shall be soon possible, as I'm currently working
with Jeffrey Lim, the author of *Impulse Tracker*, so that IT will
include compression/decompression routines. A few trackers already
used some kind of sample compression, but as far that I know, this
shall be the first tracker (I guess) with such a reasonable
compression (ratio approximatively equal to ZIP, ARJ, LZH, etc.. and
twice or thrice faster!)
2. Information on MMCMP
2.1. Requirements:
- A 80386 based or better computer (does anybody still have something
worse????)
- around 350k of free conventionnal memory
- 100k of free exTended memory (for MMTSR only)
- some free space on your drive C: (for MMTSR only) to uncompress a
module (the size of a module is needed...)
These requirements may change with future version of the program.
See the "Features" section down here and the MMUPDATE.DOC file.
2.2. Files in this package:
You should have all the following files:
MMCMP.EXE The compression utility
MMUNCMP.EXE The decompression utility
MMTSR.EXE The TSR version of MMUNCMP
MMCMP.DOC This file...
MMUPDATE.DOC Information on previous, current and future releases
FILE_ID.DIZ Small description for BBS
If you wish to distribute MMCMP, see the legal stuff below.
2.3. Features of this version:
MMCMP can actually compress module of the following formats and
supports everything supported by the specified tracker version:
- S3M: Scream Tracker 3 module (ST3 version 3.21)
(adlib samples not supported (who cares...) but MMCMP supports
16 bits samples even if ST3 doesn't)
- IT: Impulse Tracker module (IT version 1.04)
- XM: Extended Module (Fast Tracker 2.05)
These are the trackers with which MMCMP has been tested. Of course,
MMCMP might work correctly with module made from newer versions of
those trackers as long as modules don't hold newly implemented
features, and it is possible that MMCMP may not handle correctly what
was said to be "currently unsupported" by those trackers.
Actually, MMCMP supports only 8/16 bits mono compression. This doesn't
mean much though, because data like patterns, which aren't samples, are
compressed too. It only means that, for example, stereo samples will
soon have their own compression scheme so they can be compressed much
better. However, among currently supported module formats, none of
their respective trackers actually support stereo samples, so stereo
support won't be implementedd until it has to...
3. Usage:
3.1. Compressing Modules:
To compress a module, simply type at the prompt:
MMCMP modulename [modulename] [modulename]...
"modulename" may include a drive letter, a full path, as well as '*'
and '?' wildcards. You may also specify more than one modulename.
The file extension must be specified. Omitting modulname will show
this command line syntax.
*IMPORTANT NOTE:*
=>> MMCMP WILL REPLACE THE ORIGINAL MODULE with the compressed one unless
an error occured during the process. The new file will then have the
same name, date and time, than the original one. If an error occured
while compressing, the module will remain unchanged. If your module
is "read only", MMCMP won't be able to replace it and will save the
compressed module in a temporary file, giving you the name of this
file.
3.2. Uncompressing Modules:
To uncompress a module, type at the prompt:
MMUNCMP modulename [modulename] [...]
The syntax follows the same rules than for MMCMP, explained above.
Note that MMUNCMP, like MMCMP will replace the compressed module by
the uncompressed one. It will also behave like MMCMP if an error
occurs.
3.3. Using MMTSR:
MMTSR is loaded by typing "MMTSR" at the prompt. It will allocate
101k of extended memory (expanded is not supported yet) and take 3.2k
of conventionnal memory for itself. Load it "high" if you can, by
typing "lh mmstr" at the prompt, so it doesn't use "low" memory used
by most applications. Once it is resident in memory, it will
systematically decompress any file it detects as compressed modules.
Technically speaking, every file BEGINNING with the "ziRCONia"
signature WILL be decompressed.
NOTE:
MMTSR CAN'T be unloaded from memory (unless you reboot your system of
course...), but can be enabled/disabled anytime if you think it
interfere with something else in your system. To desactivate MMTSR,
simply type "mmtsr off" and to reactivate it, type "mmtsr on" at the
command prompt.
When decompressing a module, MMTSR opens a tempory file in the root
directory of drive C: (C:\_~zirc~_.tmp, but this shall be configurable
in future versiona of MMTSR) This means that it will most probably
don't work correctly if some program opens more than one compressed
module at once. Of course, a player may load more than one module into
memory, as long as a compressed module is not opened before the
previous one is closed first. Usually, trackers and players don't
open more than one module at once.
Furthermore, since every compressed file is decompressed when it is
opened, program that scan every modules to get their name, info, etc,
will be consequently slowed down during scanning. If music is
playing while a file is decompress, some weird things might occur
with the playback, only during decompression, depending on the
player/tracker you are using. But don't worry, it shouldn't hurt ;)
This is only due to the way the computer processes "background
events", i.e, most of the time, decompressing file in "background"
and playing music in background can't be done at the same time.
Under certain circumstances, MMTSR let the music playback continue
normally, but sometimes playback is slowed down, or paused. This
really depends on your player or tracker.
IMPORTANT:
MMTSR works for READ ONLY decompressing, i.e. any program, player,
tracker, may read any compressed module, but attempting to write into
a compressed module WHILE it is STILL open will return an error to
the program that attempted to write, like if it was a read only
file. This prevents corruption of the compressed module since the
player/tracker sees the module file as a non-compressed file.
However, since players don't write into modules and trackers usually
rewrite the whole module, there won't be any problem.
Frthermore, using MMTSR to load modules which have been compressed
using a newer version of MMCMP (with new compression scheme, i.e only
adding new module format or that sort of thing doesn't change
anything here) might crash your computer. It doesn't do anything
bad, but you'll have to reboot your system. It might also not crash,
instead it will only load data in a wrong manner, and results are
much unpredictable (for example, a sample could sound like garbage).
But if you don't save and overwrite your module after it has been
altered in some ways, DATA CAN'T BE MODIFIED and will remain like it
was before. Simply use MMUNCMP to decompress it correctly.
This is all because MMTSR, being resident in memory and working in
"background", can't interact with the user if something is wrong.
Thus, to keep MMTSR as small as possible so it doesn't take too much
memory, no check or verification is done for newly implemented
features, not supported by the current verion of MMTSR. Consequently,
you should always use the latest version of MMTSR you own.
A lot of work has to be done around MMTSR to improve it, and a setup
utility will probably be released soon to let the user configure
MMTSR (temporary file path, extended/expanded memory support,
etc..) Check the file MMUPDATE.DOC.
3.4. Technical stuff ahout MMTSR:
- MMTSR intercepts the "open file" and "close file" functions of
INT 21h.
- To check if MMTSR is installed, call INT 21h with AX=4370h. If
MMTSR is not installed, this funciton will probably not be supported
and CF will be set. But if MMTSR is installed, CF will be cleared,
and EAX=4352697Ah ('ziRC').
- MMTSR may be disabled by calling INT 21h with AX=4372h
- Call INT 21h with AX=4371h to reenable it.
- Both 4371h and 4372h functions will return with CF cleared and
EAX=4352697Ah if MMTSR is loaded.
4. Some legal stuff:
I CAN'T BE HELD RESPONSIBLE FOR ANYTHING THAT COULD HAPPEN TO YOU, YOUR
MACHINE, OR WHOEVER OR WHATEVER, RESULTING FROM ANY USE OF THIS SOFTWARE. BY
USING THIS SOFTWARE, YOU ARE AUTOMATICALLY ACCEPTING THIS, AS WELL AS THE
FOLLOWING PARAGRAPH:
YOU MAY NOT MODIFY ANY PART OF THIS SOFTWARE, NOR YOU MAY ADD OR REMOVE
ANYTHING TO OR FROM ANY OF ITS FILES. IF YOU'RE NOT A DISTRIBUTOR, YOU MAY
HOWEVER FREELY DISTRIBUTE AND COPY IT, AS LONG AS EVERY FILES ARE PACKAGED OR
ARCHIVED TOGETHER AND NO FILE IS MODIFIED OR REMOVED. YOU MAY ARCHIVE OTHER
FILES WITH THIS SOFTWARE FOR ADVERTISING PURPOSE ONLY, BUT THIS SOFTWARE MUST
NOT BE INVOLVED IN ANY WAYS IN THIS ADVERTISING NOR RELATED TO ANY OTHER
PRODUCT. YOU MAY NOT CHARGE ANYTHING FOR THIS SOFTWARE OR PARTS OF IT.
DISTRIBUTORS WHO ARE INTERESTED IN THIS SOFTWARE OR ANYBODY ELSE WHO WISHES TO
MAKE COMMERCIAL USE OF IT OR PARTS OF IT MUST GET MY WRITTEN CONSENT FIRST.
If you wish to copy it, please archive or compress files under the
following filename:
MMCMPxyy.eee
Where 'x' and 'yy' are the version number (x.yy). For Beta releases,
replace the last 'y' by a 'b'. 'eee' is simply the extension added by
the archiver. Since there's some work being done between Jeffrey Lim,
the author of Impulse Tracker, and me, you may also distribute MMCMP
files along with Impulse Tracker.
5. Closing words:
This is one of the first official release of MMCMP, and I'm sorry if
this doc contains errors or some information is missing... please
contact me if you wish to notify anyhting about it.
I personnaly conceive the compression algorithm two or three years
ago, and after having written from scratch three very different
versions of my program (the third is the good one) here it is! But I
haven't been really alone, I'd like to thank:
Jeffrey Lim: For spending a lot of time trying to fix bugs in his
tracker, while bugs were within my program, (dear
MMTSR...;]) Also helped me to spread my program all over
the world by putting my program along with his tracker
(*Impulse Tracker* of course...) Also did beta testing.
Thanks a lot!
Beta Testers: Nicolas Szapiel (Moonbeam / )
Nicolas Roberge (Populous / )
Samuel Cote (Balrog / KFMF)
Dominic (Mammouth)
And anyone else who uses my program, and all those who are sending me
comments, info, questions, bugs reports (...shouldn't happen ;]) !!
Furthermore, if you find my utility VERY convenient, and you think
that it worth something (well... anything), maybe you could send me
that 'something' ;) Seriously, MMCMP is NOT a very big utility and I
"don't" ask anything for it. I've spent many many many hours to
conceive, code and debug this utility, and I'm still working on it...
but this is FREEware meant to please the whole planet! However if you
feel happy and generous, follow your feelings! And if people around
you feel the same way, get together to form an happy and generous
group! I know an university student who works hard to pay his school
fees that would be very happy to receive a little something in a
little envelope in his little snail-mail box :-) I will also write
your name/nick or whatever you want (simply specify it) into a "very
kind people" list! So... open your mind, feel the generous person
within you, and... ;)
As I said in the intro, my compression algorithm shall be soon
integrated to Impulse Tracker, so watch this out!!! and read the
MMUPDATE.DOC file!!
6. Contacting the author
If you wish to ask or report something, or for any comment, contact
me...
... via e-mail:
giassone@ift.ulaval.ca
OR Emmanuel.Giasson@ift.ulaval.ca (same thing...)
Subject: MMCMP (or whatever else you want...)
(I shall have this mail account up to april '98, and maybe
more...)
... via snail mail:
Emmanuel Giasson
158, rue Gariepy
St-Redempteur, Quebec
G6K 1M5
Canada
(this shall also still be good for a couple of years...)
... via IRC ;)
though this 'may' not be very serious, if you happen to be on
the same 'IRC net' (try irc.polymtl.ca or irc.magic.ca, and
many others around the world), look for 'Zirconia', often on
channel #quebec (well, as for now...). Try between 7pm and
2am, Eastern North American time (-6h00 GMT)
If you are reporting me bugs, please, try to be as explicit as
possible! If you wish to use my compression algorithm, ask me first,
but if you only want to get the algoritmh to decompress data (well,
this may seems to be the same thing, but in fact, this is much
simpler) you may ask me (because I haven't yet included it along with
the software) or wait until it is integrated to IT. The decompression
algorithm shall be there for anybody (i.e. players/trackers
programmers) who might like to add support for compressed IT modules.
DON'T FORGET TO LOOK THE MMUPDATE.DOC FILE!!!!!
Enjoy!
Emmanuel Giasson a/s Zirconia